package com.profgj.profgj.validater;

import com.profgj.profgj.entity.ProjectBaseInfo;
import com.profgj.profgj.utils.EmptyUtils;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

/**
 * 项目基本情况 对象参数校验器
 */
public class ProjectBaseInfoValidator implements Validator {

    /**
     * 类型校验
     * @param clazz 类对象
     * @return
     */
    @Override
    public boolean supports(Class<?> clazz) {

        // 类型比对
        return clazz.equals(ProjectBaseInfo.class);
    }

    /**
     * 验证逻辑
     * @param target    目标对象
     * @param errors    错误信息保存对象
     */
    @Override
    public void validate(Object target, Errors errors) {

        // 判断对象是否为空
        if(target == null) {
            errors.rejectValue("",null,"项目基本情况对象不能为空");
        }

        // 强制转换
        ProjectBaseInfo projectBaseInfo = (ProjectBaseInfo)target;
        // 判断字段是否为空
        if(!EmptyUtils.isLongEmpty(projectBaseInfo.getEnId())) {
            errors.rejectValue("en_id",null,"企业id不能为空");
        }
        if(projectBaseInfo.getProjectName().isEmpty()) {
            errors.rejectValue("project_name",null,"项目名称不能为空");
        }
        if(projectBaseInfo.getAddress().isEmpty()) {
            errors.rejectValue("address",null,"建设地点不能为空");
        }
        if(projectBaseInfo.getIndustry().isEmpty()) {
            errors.rejectValue("industry",null,"所属行业不能为空");
        }


    }
}
